#ifndef CPARSE_H_LZ_2012_11_20
#define CPARSE_H_LZ_2012_11_20
#include "KeyDeclear.h"
#include "CToken.h"
#include "CParseMsg.h"
namespace MyRegular_Parse{
	using namespace MyRegular_Token;
	enum EResultCode{
		ERC_OK,
		ERC_Failed,
		ERC_Ingor
	};
	class CParse{
	public:
		int Parse( const char* pszSource );
	private:
		int _Parse( ECTokenType eEnd = ECTT_END );
		int BracketParse();
		int ParenthesisParse();
		int BraceParse();
		int TransFormParse();
		int MinusParse();
		int Parse_NoParenthesis();
		bool CheckNumStr( const char* pszSource );
		int L();
		int R();
	private:
		CToken token;
		MyRegular_ParseMsg::CParseMsg msg;
	};
	class CTestParse{
	public:
		CTestParse(){};
		void Test( const char* pszSource );
	};
};
#endif